package main

// import ."fmt" // 如果在包名前加上. 则可以直接使用该包的方法 Println()，而不需要加上包名 fmt.Println()
// import myfmt "fmt" // 如果在包名前加上 字符 则可以给该包设置别名 使用别名调用
import (
	"fmt"
	_ "os" // 包名前加上下划线则可以匿名引入该包 防止报没有使用错误, 匿名引用有什么意义？ 当一个包中有init()方法时，当我们匿名引入后该包中的init() 函数会被执行
)

// init函数讲解：
// 一个包中可以有多个init函数 当包被引入时都会执行，但不能保证顺序
// 当包被重复引用时，不会有问题，而且go编译器会保证 包中的init函数只执行一次

// go 1.12之前 没有啥包管理，现在项目都要使用 go module方式
// go package 同一个文件夹下代码必须声明 包名，而且必须一样，除非再建子目录 当然包名还是不能和上一级一样，文件夹下的包名最好和文件夹名字一致，但可以不一致
// 新建文件夹一般小写 import 实际是代码的路径 而不是包名
// 同一个package 下的变量和方法 不管首字母大小写都可以相互调用，可以理解同一个package下面的代码不管多少个文件 其实都是写在一块的
func main() {
	fmt.Println("dd")
}
